<!DOCTYPE html>
<html>
    <head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<style>
			body, h2, p {margin: 0;padding: 0;}
			body {background-color: #ccc;color: #333;font-family: Helvetica, sans-serif;}
			#ir_book {position: absolute;background:#fff;}
			#ir_pages{position: absolute;overflow: hidden;}
			#ir_pages section {overflow:hidden;position:absolute;background:#fff;}
			#ir_pages section>div {display: block;padding-bottom:20px;}
			#ir_pages section>div>p{text-indent: 2em;}
			#ir_book canvas{position:absolute;}
			#ir_book #page_num{position:absolute;bottom:0px;width:90%;height:20px;font-weight:bold;text-align:center;}
		</style>
	</head>
	<body>
		<div id="ir_book" style="margin-left:400px;">
			<canvas style="z-index: 1000;" id="pageflip-canvas"></canvas>
			<div id="ir_pages">
				<section>
					<div class="ir_page">
						<p> 新浪体育讯　北京时间11月8日《纽约时报》报道，留着一幅不加修饰络腮胡的拉希德-华莱士坐在尼克斯场边，不停朝着场上的人大喊大叫，不管是队友、对手，还是裁判，他还是人们熟悉的那个“非主流”球员。尼克斯的球迷高声呼喊他的名字，要求迈克-伍德森在胜券在握的情况下派这位38岁的老将上场。
							尼克斯本赛季开局顺畅，自打1999年以来第一次赢下了全部前三场比赛，而华莱士是球队最大的惊喜。因为调整状态，他在季前赛六战一分钟没打，但是当常规赛开始后，他的表现却非常高效。在三场比赛里华莱士一共只上场21分钟，却贡献了16分6个篮板和2次盖帽。
							“我两年没打NBA[微博]，但我并没有荒废掉这段时间，”华莱士说，“很多人可能都会这么以为，但我没有。”
  							揭幕战对热火[微博]，华莱士在比赛尾声阶段上场，第一次三分出手就稳稳命中，最终帮助尼克斯104-84大胜卫冕冠军。接下来主场对76人，他抓下两个篮板，并且在防守端表现出色。周二尼克斯客场再战76人，他出场14分钟，攻防两端都发挥抢眼，第三节结束前更是投中一记压哨三分。</p>
						<p>“我只是尽量让每个人都集中精神做好赛前准备，”华莱士说，“有时你可能被犯规了却没得到哨子，但你还得继续打下去。用另一种方式做出回击，靠记分板上的分数，而不是抱怨。我对这帮小伙子说的最多的是，‘我的速度和敏捷大不如前了，但动动嘴还是没问题的’，这是另一种防守贡献。”</p>
						<p>从那些场边的大吼大叫中，华莱士得到了队友们的认可，场上的球员们总是可以清晰地听到他的指令和建议。“去年很多时候，我是唯一在场边大喊的人，”上赛季NBA最佳防守球员泰森-钱德勒[微博]说道，“现在有了拉希德，即便我在球场另一侧，也能清晰听到他的声音。这让我时刻警醒，留神场上每个人的动态。”</p>
						<p>“他做到了所有我们要求他做的事，”伍德森评价道，“他不能打太久，但有限时间里他带来了很多积极贡献。”大嘴巴的华莱士作用还不仅限于场上，在赛前他也积极参与到防守战术的讨论中，他的建议帮助球队前三场比赛场均失分不到90。</p>
						<p>揭幕战对热火[微博]，华莱士在比赛尾声阶段上场，第一次三分出手就稳稳命中，最终帮助尼克斯104-84大胜卫冕冠军。接下来主场对76人，他抓下两个篮板，并且在防守端表现出色。周二尼克斯客场再战76人，他出场14分钟，攻防两端都发挥抢眼，第三节结束前更是投中一记压哨三分。</p>
					</div>
				</section>
				<section>
					<div class="ir_page">
						<p>
							新浪体育讯　北京时间11月8日，热火[微博]继续坐镇主场迎战篮网。篮网积弱多年，
							自从2009年11月14日开始对热火连续10场比赛全部告负。本赛季咸鱼翻身，得到众多大牌球员，
							篮网势必要扭转对热火的颓势。而热火也是阵容齐整，全力力争三连胜，同时也要捍卫王者的荣誉。</p>
						<p> 尽管篮网取得了第一波的进攻球员，但波什[微博]断下德隆的传球，热火打出快速反击，
							詹姆斯接到韦德[微博]的传球空中接力暴扣得手，拉开了本场比赛的序幕。
							不过乔-约翰逊立刻一个三分球还以颜色，但波什紧跟着中投得手，又依靠罚球拿下两分，
							热火6-3领先开局。</p>
						<p> 詹姆斯今天很早就进入了进攻状态，9分27秒，他的突破造成约翰逊犯规，两罚两中，
						          紧接着波什又抢断得手，反击中查尔默斯[微博]助攻詹姆斯上篮得分。7分35秒，亨弗里斯打板入筐，
						          但詹姆斯立刻用一个三分球还以颜色，开场5分钟，詹姆斯就已经拦下9分。
							查尔默斯的上篮掀起了热火的又一波进攻势头，随后巴蒂尔投中三分球，波什强打造成德隆犯规，
							两罚一中。3分10秒，德隆跳投得手，布莱切随后突破拿下两分，篮网瞬间反超，但巴蒂尔接到查尔默斯的传球再中一记三分，
							热火再次取得领先，篮网则要了暂停。</p>
					</div>
				</section>
				<section>
					<div class="ir_page">
						<p>新浪体育讯　北京时间11月8日，美国昨天进行了总统大选，最终奥巴马得到了大部分的选票完成了连任。对于奥巴马的连任，勒布朗-詹姆斯也显得很高兴，在结果公布之后，他连续发了3条推特。</p>
						<p>“连任！俄亥俄州的人们，你们简直太棒了！”在第一条推特中，詹姆斯显得非常兴奋，同时他也不忘感谢了自己家乡俄亥俄州的人民，他们是众多支持奥巴马的州之一。</p>
						<p>随后，詹姆斯又写道：“还有那些其他为奥巴马投票的人，你们也非常棒！你们拥有很大的权利，善用这一切。”</p>
						<p>在连续发了两条推特之后，质疑之声来了。众所周知，詹姆斯不只是个俄亥俄州人，同时他之前效力的克利夫兰也是俄亥俄州最大的城市。不过两年之前，他离开了骑士转而加入迈阿密热火，这样的经历让他在克利夫兰甚至是俄亥俄州并不受欢迎。在詹姆斯的这两条推特中，就有网友再次表达了对于詹姆斯背叛的愤怒，同时也有好事的网友表示，既然已经加入了位于佛罗里达州的迈阿密热火，为什么要在这赞赏俄亥俄州的人民，难道詹姆斯的最爱还是俄亥俄州？</p>
						<p>质疑之声未落，詹姆斯发出了他的第三条推特。这条推特看似和奥巴马连任没有什么大关系，不过从发布的时间来看，他是在为前两条进行总结。</p>
						<p>“俄亥俄州和佛罗里达州是我的最爱！”詹姆斯在最后一条推特里写道。</p>
					</div>
				</section>
				<section>
					<div class="ir_page">
						<p>新浪体育讯　北京时间11月8日，美国昨天进行了总统大选，最终奥巴马得到了大部分的选票完成了连任。对于奥巴马的连任，勒布朗-詹姆斯也显得很高兴，在结果公布之后，他连续发了3条推特。</p>
						<p>“连任！俄亥俄州的人们，你们简直太棒了！”在第一条推特中，詹姆斯显得非常兴奋，同时他也不忘感谢了自己家乡俄亥俄州的人民，他们是众多支持奥巴马的州之一。</p>
						<p>随后，詹姆斯又写道：“还有那些其他为奥巴马投票的人，你们也非常棒！你们拥有很大的权利，善用这一切。”</p>
						<p>在连续发了两条推特之后，质疑之声来了。众所周知，詹姆斯不只是个俄亥俄州人，同时他之前效力的克利夫兰也是俄亥俄州最大的城市。不过两年之前，他离开了骑士转而加入迈阿密热火，这样的经历让他在克利夫兰甚至是俄亥俄州并不受欢迎。在詹姆斯的这两条推特中，就有网友再次表达了对于詹姆斯背叛的愤怒，同时也有好事的网友表示，既然已经加入了位于佛罗里达州的迈阿密热火，为什么要在这赞赏俄亥俄州的人民，难道詹姆斯的最爱还是俄亥俄州？</p>
						<p>质疑之声未落，詹姆斯发出了他的第三条推特。这条推特看似和奥巴马连任没有什么大关系，不过从发布的时间来看，他是在为前两条进行总结。</p>
						<p>“俄亥俄州和佛罗里达州是我的最爱！”詹姆斯在最后一条推特里写道。</p>
					</div>
				</section>
				<section>
					<div class="ir_page">
						<p>新浪体育讯　北京时间11月7日消息，据《南佛罗里达太阳哨兵报》报道，迈阿密热火[微博]在上一场比赛中以124-99大胜菲尼克斯太阳，这也是热火本赛季首次失分不超过三位数。这似乎证明，热火已经开始找回他们的防守了。</p>
						<p>谁都知道，热火的一切都是建筑在防守之上的。“自从帕特-莱利在这里主事，防守的理念就被带来了，”主帅埃里克-斯波尔斯特拉说，“想要赢得最大的奖项，就必须保证防守。”</p>
						<p>正因如此，人们才会感到疑惑为什么热火在本赛季完全没有防守？为什么他们会成为NBA[微博]开赛场均丢分第二多的球队？虽然在最近一场比赛中，他们击败了太阳，人们认为热火取得了伟大的进步，但丢99分就是进步？这已经是热火对手本赛季得到的最低分了。但即便如此，这也比上赛季热后的场均丢分多了7分。</p>
						<p>当然，这只是一周的比赛，只有4场而已，这个样本并不大，不足以说明热火的问题。但有一个问题不容忽视，那就是怎么让热火那些习惯了进攻的新援建立防守意识。</p>
						<p>一年前，热火的主要轮转球员是乌杜尼斯-哈斯勒姆[微博]和乔尔-安东尼，这两个家伙能提供防守和篮板，现在，热火的第六人是雷-阿伦，第七人是拉沙德-刘易斯，这两人都以投篮著称。不过阿伦已经证明自己的三分球是总冠军的一大助力，他在热火会如鱼得水，现在希望刘易斯也能像阿伦那样融入球队。斯波尔斯特拉表示，热火会让阿伦和刘易斯也按照热火的方式打球。</p>
					</div>
				</section>
				<section>
					<div class="ir_page">
						<p>新浪体育讯　北京时间11月8日，休整两天的湖人[微博]开始客场征程，这次他们将要挑战的是苦主犹他爵士。纳什[微博]由于伤病依然作壁上观，科比和霍华德领衔的紫金军在品尝到新赛季首胜的喜悦之后，一定希望能在今天延续这样的势头。而爵士本赛季同样开局不佳，和湖人战绩同为1胜3负，坐镇主场的他们相信也不会甘愿将胜利的果实拱手相让。以下为双方首发阵容：</p>
						<p>湖人：布雷克、科比、慈世平[微博]、加索尔、霍华德</p>
						<p>爵士：莫-威廉姆斯、海沃德、马尔文-威廉姆斯、米尔萨普、杰弗森</p>
					</div>
				</section>
				<div id="page_num">1</div>
			</div>	
		</div>	
		<div id="msg"></div>
		<script>
			(function() {

				var PAGE_WIDTH = 0;
				var PAGE_PADDING_W = 0;
				var PAGE_HEIGHT = 0;
				var CANVAS_PADDING = 0;
				
				initParams({
					
				});
				
				var PAGE_Y = ( PAGE_HEIGHT - PAGE_HEIGHT ) / 2;
				var page = 0;
				var canvas = document.getElementById( "pageflip-canvas" );
				var context = canvas.getContext( "2d" );

				var mouse = { x: 0, y: 0 };
				var mouse_x_to = { x: 0, xt: 0 };
				var differ = 0;
				var act_page = -1;
				var dragging = false;
				var _count = 0;
				
				var flips = [];
				
				var book = document.getElementById( "ir_book" );
				var pages = book.getElementsByTagName( "section" );
				var page_num = document.getElementById( "page_num" );
				
				for( var i = 0, len = pages.length; i < len; i++ ) {
					pages[i].style.zIndex = len - i;
					flips.push( {
						progress: 1,
						target: 1,
						page: pages[i], 
						dragging: false
					} );
				}
				
				canvas.width = PAGE_WIDTH + ( CANVAS_PADDING * 0 );
				canvas.height = PAGE_HEIGHT + ( CANVAS_PADDING * 2 );
				canvas.style.left = -CANVAS_PADDING*0/2 + "px";
				
				setInterval( render, 1000/30);
				
				document.addEventListener( "mousemove", mouseMoveHandler, false );
				document.addEventListener( "mousedown", mouseDownHandler, false );
				document.addEventListener( "mouseup", mouseUpHandler, false );
				
				function mouseMoveHandler( event ) {
					mouse.x = event.clientX - book.offsetLeft ;
					mouse.y = event.clientY - book.offsetTop ;
				}
				
				function mouseDownHandler( event ) {
					var half_width = PAGE_WIDTH / 2;
					if(mouse.x > 0 && mouse.x < PAGE_WIDTH){
						if(mouse.x <= half_width && page - 1 >= 0){
							flips[page - 1].dragging = true;
						}else{
							flips[page].dragging = true;
						}
					}
					event.preventDefault();
				}
				
				function mouseUpHandler( event ) {
					var half_width = PAGE_WIDTH / 2;
					for( var i = 0; i < flips.length; i++ ) {
						if( flips[i].dragging ) {
							if( mouse.x < half_width ) {
								flips[i].target = -1;
								page = Math.min( page + 1, flips.length );
							}else {
								flips[i].target = 1;
								page = Math.max( page - 1, 0 );
							}
							page_num.innerHTML = page + 1;
						}
						flips[i].dragging = false;
					}
				}
				
				function render() {
					
					context.clearRect( 0, 0, canvas.width, canvas.height );
					for( var i = 0, len = flips.length; i < len; i++ ) {
						var flip = flips[i];
						
						if( flip.dragging ) {
							flip.target = Math.max( Math.min( (1-(PAGE_WIDTH - mouse.x) / (PAGE_WIDTH * 2)) , 1 ), -1 );
						} 
						flip.progress += ( flip.target - flip.progress ) * 0.10;
						if( flip.dragging || Math.abs( flip.progress ) < 0.997 ) {
							drawFlip( flip );
						}
						
					}
				}

				function drawFlip( flip ) {
					var strength = 1 - Math.abs( flip.progress );
					var foldWidth = PAGE_WIDTH * ( 1 - flip.progress );
					var foldX = PAGE_WIDTH * flip.progress;
					var verticalOutdent = 30 * strength;
					
					var paperShadowWidth = ( PAGE_WIDTH * 0.4 ) * Math.max( Math.min( 1 - flip.progress, 0.4 ), 0 );
					var rightShadowWidth = ( PAGE_WIDTH * 0.4 ) * Math.max( Math.min( strength, 0.4 ), 0 );
					var leftShadowWidth = ( PAGE_WIDTH * 0.4 ) * Math.max( Math.min( strength, 0.4 ), 0 );
					
					flip.page.style.width = Math.max(foldX - PAGE_PADDING_W, 0) + "px";
					context.save();
					context.translate(0, PAGE_Y + CANVAS_PADDING );
					
					context.strokeStyle = 'rgba(0,0,0,'+(0.05 * strength)+')';
					context.lineWidth = 20 * strength;
					context.beginPath();
					context.moveTo(foldX - foldWidth, -verticalOutdent * 0.5);
					context.lineTo(foldX - foldWidth, PAGE_HEIGHT + (verticalOutdent * 0.5));
					context.stroke();
					
					
					var rightShadowGradient = context.createLinearGradient(foldX, 0, foldX + rightShadowWidth, 0);
					rightShadowGradient.addColorStop(0, 'rgba(0,0,0,'+(strength*0.2)+')');
					rightShadowGradient.addColorStop(0.8, 'rgba(0,0,0,0.0)');
					
					context.fillStyle = rightShadowGradient;
					context.beginPath();
					context.moveTo(foldX, 0);
					context.lineTo(foldX + rightShadowWidth, 0);
					context.lineTo(foldX + rightShadowWidth, PAGE_HEIGHT);
					context.lineTo(foldX, PAGE_HEIGHT);
					context.fill();

					
					var leftShadowGradient = context.createLinearGradient(foldX - foldWidth - leftShadowWidth, 0, foldX - foldWidth, 0);
					leftShadowGradient.addColorStop(0, 'rgba(0,0,0,0.0)');
					leftShadowGradient.addColorStop(1, 'rgba(0,0,0,'+(strength*0.15)+')');
					
					context.fillStyle = leftShadowGradient;
					context.beginPath();
					context.moveTo(foldX - foldWidth - leftShadowWidth, 0);
					context.lineTo(foldX - foldWidth, 0);
					context.lineTo(foldX - foldWidth, PAGE_HEIGHT);
					context.lineTo(foldX - foldWidth - leftShadowWidth, PAGE_HEIGHT);
					context.fill();
					
					
					var foldGradient = context.createLinearGradient(foldX - paperShadowWidth, 0, foldX, 0);
					foldGradient.addColorStop(0.35, '#fafafa');
					foldGradient.addColorStop(0.73, '#eeeeee');
					foldGradient.addColorStop(0.9, '#fafafa');
					foldGradient.addColorStop(1.0, '#e2e2e2');
					
					context.fillStyle = foldGradient;
					context.strokeStyle = 'rgba(0,0,0,0.06)';
					context.lineWidth = 0.5;
					
					context.beginPath();
					context.moveTo(foldX, 0);
					context.lineTo(foldX, PAGE_HEIGHT);
					context.quadraticCurveTo(foldX, PAGE_HEIGHT + (verticalOutdent * 2), foldX - foldWidth, PAGE_HEIGHT + verticalOutdent);
					context.lineTo(foldX - foldWidth, -verticalOutdent);
					context.quadraticCurveTo(foldX, -verticalOutdent * 2, foldX, 0);
					
					context.fill();
					context.stroke();
					
					context.restore();
				}
				function initParams(o){
					var book = document.getElementById("ir_book");
					var page = document.getElementById("ir_pages");
					var sections = document.getElementsByTagName("section");
					var pages = document.getElementsByClassName("ir_page");

					o.color = o.color ? o.color : "#333";
					o.fontSize = o.fontSize ? o.fontSize : 14;
					o.page_width = o.page_width ? o.page_width : 500;
					o.page_height = o.page_height ? o.page_height : 600;
					o.page_padding_w = o.page_padding_w ? o.page_padding_w : 30;
					o.page_padding_h = o.page_padding_h ? o.page_padding_h : 30;
					o.canvas_padding = o.canvas_padding ? o.canvas_padding : 20;
					o.bg_color = o.bg_color ? o.bg_color : "#fff";
					o.bold = o.bold ? o.bold : "normal";
					o.line_height = o.line_height ? o.line_height : 20;
					o.family = o.family ? o.family : "Geneva, Arial, Helvetica, sans-serif";

					var bs = book.style,ps = page.style;
					bs.fontFamily = o.family;
					bs.color = o.color;
					bs.backgroundColor = o.bg_color;
					bs.fontSize = o.fontSize + "px";
					bs.fontWeight = o.bold;
					bs.width = o.page_width + "px";
					bs.height = o.page_height + o.canvas_padding * 2 + "px";
					bs.lineHeight = o.line_height + "px";
					
					ps.width = (o.page_width - 2 * o.page_padding_w) + "px";
					ps.height = (o.page_height - 2 * o.page_padding_h) + "px";
					ps.paddingTop = (o.page_padding_h + o.canvas_padding) + "px";
					ps.paddingLeft = o.page_padding_w + "px";
					ps.paddingBottom = o.page_padding_h + "px";
					ps.paddingRight = o.page_padding_w + "px";
					
					for(var i = 0; i < sections.length; i++){
						sections[i].style.width = ps.width;
						sections[i].style.height = ps.height;
					}
					for(var i = 0; i < pages.length; i++){
						pages[i].style.width = ps.width;
						pages[i].style.height = ps.height;
					}
					
					PAGE_PADDING_W = o.page_padding_w;
					PAGE_WIDTH = o.page_width;
					PAGE_HEIGHT = o.page_height;
					CANVAS_PADDING = o.canvas_padding;
				}
			})();
		</script>	
	</body>
<html>